<?php

/**
 * aplicaciones actions.
 *
 * @package    auip
 * @subpackage aplicaciones
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class aplicacionesActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    //$this->aplicacion_becas = Doctrine_Core::getTable('AplicacionBeca')
    //  ->createQuery('a')
    //  ->execute();
    //  $this->getUser()->setAttribute('email', Mensajero::desecriptar($request->getParameter('email')));
      $this->aplicacion_becas = AplicacionBecaTable::instancia($this->getUser()->getAttribute('email'));
      
      if($request->hasParameter('id'))
      {
          $this->getUser()->setAttribute('id', $request->getParameter('id'));
          //$this->forward('aplicaciones', 'new');
          $this->redirect('aplicaciones/new');
      }
  }

  public function executeAccion(sfWebRequest $request) {

       $this->getResponse()->setContentType('application/json');
       $string = $request->getParameter('q');       
       $req = Doctrine::getTable('AplicacionBeca')->miMetodo($string);       
       asort($req);//ordenar el resultado si no se hace en la consulta
       return $this->renderText(html_entity_decode(json_encode($req),ENT_QUOTES,'utf-8'));    
  }
   
  /***********************************************************************************/ 
  public function executeProcesa(sfWebRequest $request)
  {   
      $tipo_beca = BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getTipoBeca()->getId();
      
      $id = $request->getParameter('id_entidad');
      $opciones = '<option value="0"> Elige una institucion</option>';
      
      if (isset($id))
        { 
          /*DE AQUI EN ADELANTE SE ESPECIFICAN LOS DIFERENTES TIPOS DE BECAS*/
          
//          if ($tipo_beca == 1)/*Beca de Movilidad (instituciones asociadas AUIP)*/
//          {
//                $entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = ?', $id)->execute()->toArray();                
//                //la siguiente consulta excluye el pais de la institucion seleccionada en el combo entidad origen
//                $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.pais_id != ?', $entidad_origen[0]['pais_id'])->execute();
//                foreach ($entidades as $entidad) 
//                {
//                    $opciones.='<option value="'.$entidad->getId().'">'.$entidad->getNombre().'</option>';
//                }
//                echo $opciones;                
//          }
//          
//          if ($tipo_beca == 2)/*Beca de Movilidad entre la universidad de andalucia e ibaroamerica*/
//          {            
//            $entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = ?', $id)->execute()->toArray();
//            
//              //hace la consulta basandose en el codigo de la region a la cual pertenece la universidad       
//            if($entidad_origen[0]['region_id'] == 2766)//si el usuario escogio una universidad del region de andalucia, el segundo combo debe llenarse con las entidades diferentes a la region
//            {      //la siguiente consulta devuelve todas las instituciones que no son de la region de andalucia         
//                $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id != ?', $entidad_origen[0]['region_id'])->execute();
//            }
//            elseif($entidad_origen[0]['region_id'] != 2766)//se escogio una universidad de otra region diferente entonces debe cargar solo andalucia
//            {   // la siguiente consulta devuelve las instituciones que son de la region de andalucia
//                $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id = 2766')->execute();
//            }
//                //echo ($entidad_origen[0]['region_id']);
//                //print_r($entidad_origen);                
//                foreach ($entidades as $entidad) 
//                {
//                    $opciones.='<option value="'.$entidad->getId().'">'.$entidad->getNombre().'</option>';
//                }
//                echo $opciones;
//           }//FIN SI CONVOCATORIA TIPO 2
//           if ($tipo_beca == 3)/*Beca para cursar masteres en la universidad de castilla y leon*/
//           {   
//               $entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = ?', $id)->execute()->toArray();
//                //la siguiente consulta devuelve
//                $entidades_destino = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id = 2777')->execute();
//                
//                foreach ($entidades_destino as $destino) 
//                {
//                    $opciones.='<option value="'.$destino->getId().'">'.$destino->getNombre().'</option>';
//                }
//                echo $opciones;
//           }//FIN SI CONVOCATORIA TIPO 3
//           if ($tipo_beca == 4)/*Beca de movilidad entre la universidad de extremadura y universidades iberoamericanas*/
//           {   
//               $entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = ?', $id)->execute()->toArray();
//               //hace la consulta basandose en el codigo de la region a la cual pertenece la universidad       
//               if($entidad_origen[0]['region_id'] == 2783)
//               {
//                    $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id != ?', $entidad_origen[0]['region_id'])->execute();
//               }
//               elseif($entidad_origen[0]['region_id'] != 2783)//se escogio una universidad de otra region diferente entonces debe cargar solo andalucia
//               {
//                    $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id = 2783')->execute();
//               }               
//               foreach ($entidades as $destino) 
//               {
//                    $opciones.='<option value="'.$destino->getId().'">'.$destino->getNombre().'</option>';
//               }
//                echo $opciones;
//                //print_r($entidad_origen);
//           }//FIN SI CONVOCATORIA TIPO 4
           
           if ($tipo_beca == 5)/*Beca de movilidad entre la universidad de extremadura y universidades iberoamericanas*/
           {   
               $entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = ?', $id)->execute()->toArray();
               //hace la consulta basandose en el codigo de la region a la cual pertenece la universidad       
               $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.id = 20')->execute();
               foreach ($entidades as $destino) 
               {
                    $opciones.='<option value="'.$destino->getId().'">'.$destino->getNombre().'</option>';
               }
                echo $opciones;
           }//FIN SI CONVOCATORIA TIPO 4
         }//SIN SI ISSET
  }
  
  public function executePruebas(sfWebRequest $request)
  {     
        $this->id_beca = $this->getUser()->getAttribute('id');
        $this->id_usuario = $this->getUser()->getAttribute('email');        
        $this->nombre_beca = BecaTable::getBecaEncontrada2($this->getUser()->getAttribute('id'));        
        $this->tipo_beca = BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getTipoBeca()->getId();        
        /*******************************************************************************************************************************/
         //la siguiente consulta trae todas las instituciones sin restriccion  alguna
         $this->entidad_origen = Doctrine_Core::getTable('Entidad')->createQuery('a')->execute();
         
         //la siguiente consulta trae las instituciones de iberoamerica sin tener encuenta la region de castilla y leon          
         //$this->entidad_origen1 = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.region_id != 2777')->execute();
         $this->entidad_origen1 = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('a.pais_id != 63')->addWhere('a.pais_id != 158')->execute();
        
         //la siguiente consulta trae las universidades de latinoamerica, portugar y las de la region de extremadura                
         $query = "SELECT id, nombre FROM entidad WHERE (pais_id <> 63) UNION SELECT id, nombre FROM entidad WHERE (region_id = 2783) ORDER BY(nombre);"; //definimos la consulta
         $con = Doctrine_Manager::getInstance()->connection();//recuperamos el singleton de la conexión
         $resultado = $con->execute($query);//ejecutamos la consulta        
         $this->entidad_origen2 = $resultado->fetchAll();//devuelver un arreglo de arreglos       
         
         //la siguiente consulta trae las universidades de latinoamerica, portugal y españa excepto la universidades de brasil
         $query = "SELECT id, nombre FROM entidad WHERE (pais_id <> 29) UNION SELECT id, nombre FROM entidad WHERE (id = 19) ORDER BY(nombre);"; //definimos la consulta
         $con = Doctrine_Manager::getInstance()->connection();//recuperamos el singleton de la conexión
         $resultado = $con->execute($query);//ejecutamos la consulta        
         $this->entidad_origen3 = $resultado->fetchAll();//devuelver un arreglo de arreglos
   }
  /***********************************************************************************/ 
  public function executeShow(sfWebRequest $request)
  {
    $this->aplicacion_beca = Doctrine_Core::getTable('AplicacionBeca')->find(array($request->getParameter('beca_id'), $request->getParameter('usuario_id')));
    $this->forward404Unless($this->aplicacion_beca);
  }
  

  public function executeNew(sfWebRequest $request)
  {      
	  //--------------------------
	  if(!$apli = AplicacionBecaTable::getApli($this->getUser()->getAttribute('email'),$this->getUser()->getAttribute('id')) )
	  {}
	  else{
			$this->redirect($this->generateUrl('default', array('module' => 'aplicaciones','action' => 'edit', 'beca_id'=> $this->getUser()->getAttribute('id'), 'usuario_id'=> $this->getUser()->getAttribute('email') )));  
	  }
	  //--------------------------
	  
        $this->aplicacion_beca = new AplicacionBeca();   
        $this->aplicacion_beca->setBecaId($this->getUser()->getAttribute('id'));
        $this->aplicacion_beca->setBeca(BecaTable::getBecaEncontrada2($this->getUser()->getAttribute('id')));
        $this->aplicacion_beca->setUsuarioId($this->getUser()->getAttribute('email'));
        $this->forward404Unless($this->aplicacion_beca); 
        $this->form = new AplicacionBecaForm($this->aplicacion_beca);
        $tipo_beca = BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getTipoBeca()->getId();
        $nombre_beca = BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getNombre();
                
	if ($tipo_beca == 1)/*Beca de Movilidad (instituciones asociadas AUIP)*/
        {
            /*tipo de beca movilidad entre instituciones aun no se definen los parametros*/
            $codigo_pais_origen = UsuarioTable::getUsuarioEncontrado($this->getUser()->getAttribute('email'))->getNacionalidadId();
            $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> ?', $codigo_pais_origen));            
            $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> ?', $codigo_pais_origen));
         }
        
         if ($tipo_beca == 2)/*Beca de Movilidad (otras instituciones)*/
        {   
            /******************************************************/
            /*CLASIFICA LAS BECAS BASANDOSE EN LAS REGIONES DE ESPAÑA*/
            /*al ser pocas regiones por ello se hace una comprobacion con cierto numeros de ifs*/
            
            if (strpos(strtolower($nombre_beca), 'universidades') !== false) 
            {/******************LAS QUE SE MUESTRAN ACONTINUACION SON LAS QUE MAS APARECEN EN EL LISTADO DE AUIP*******************/
                
                if (strpos(strtolower($nombre_beca), 'andaluzas') !== false)
                {
                    //echo '---se encontro la cadena andaluzas';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2766'));
                }
                if ((strpos(strtolower($nombre_beca), 'andaluzas') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {                    
                    //echo '---se encontro la cadena andaluzas';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2766'));
                }
                
                
                if (strpos(strtolower($nombre_beca), 'cantabria') !== false) 
                {
                    //echo '---se encontro la cadena cantabria';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2775'));
                }
                if ((strpos(strtolower($nombre_beca), 'cantabria') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {                    
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2775'));
                }
                
                    
                
                if (strpos(strtolower($nombre_beca), 'castilla') !== false)
                {                    
                    //echo '---se encontro la cadena castilla';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2777'));
                    //echo 'paso por aqui';
                }
                if ((strpos(strtolower($nombre_beca), 'castilla') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {                    
                    //echo '---se encontro la cadena castilla';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2777'));
                    //echo 'paso por aqui';
                }
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'universidades de extremadura') !== false)
                {
                    //echo '---se encontro la cadena  extremadura';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2783'));
                }
                if ((strpos(strtolower($nombre_beca), 'universidades de extremadura') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {                    
                    //echo '---se encontro la cadena castilla';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2783'));
                    //echo 'paso por aqui';
                }
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'vasco') !== false) 
                {
                    //echo '---se encontro la cadena  pais vasco';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2805'));
                }
                if ((strpos(strtolower($nombre_beca), 'vasco') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {                    
                    //echo '---se encontro la cadena castilla';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2805'));
                }
                
                
                /**************************************************************************/                
                if ((strpos(strtolower($nombre_beca), 'aragon') !== false)  || (strpos(strtolower($nombre_beca), 'aragón') !== false)) 
                {
                    //echo '---se encontro la cadena  aragon';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2767'));
                }
                if (   ((strpos(strtolower($nombre_beca), 'aragon') !== false)  || (strpos(strtolower($nombre_beca), 'aragón') !== false)) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena  aragon';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2767'));
                }
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'asturias') !== false) 
                {
                    //echo '---se encontro la cadena  asturias';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2767'));
                }
                if ((strpos(strtolower($nombre_beca), 'asturias') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena  asturias';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2767'));
                }
                
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'cataluña') !== false) 
                {
                    //echo '---se encontro la cadena  cataluña';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2778'));                    
                }
                if ((strpos(strtolower($nombre_beca), 'cataluña') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena  cataluña';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2778'));                    
                }
                
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'galicia') !== false) 
                {
                    //echo '---se encontro la cadena  galicia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2784'));
                }
                if ((strpos(strtolower($nombre_beca), 'galicia') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena  galicia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2784'));
                }
                
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'baleares') !== false) 
                {
                    //echo '---se encontro la cadena  baleares';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2792'));
                }
                if ( (strpos(strtolower($nombre_beca), 'baleares') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false) )
                {
                    //echo '---se encontro la cadena  baleares';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2792'));
                }
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'rioja') !== false) 
                {
                    //echo '---se encontro la cadena rioja';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2794'));
                }
                if ((strpos(strtolower($nombre_beca), 'rioja') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena rioja';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2794'));
                }
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'madrid') !== false)
                {
                    //echo '---se encontro la cadena madrid';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2799'));
                }
                if ((strpos(strtolower($nombre_beca), 'madrid') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena madrid';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2799'));
                }
                
                

                
                
                if (strpos(strtolower($nombre_beca), 'murcia') !== false) 
                {
                    //echo '---se encontro la cadena murcia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2802'));
                }
                if ((strpos(strtolower($nombre_beca), 'murcia') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena murcia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2802'));
                }
                
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'navarra') !== false) 
                {
                    //echo '---se encontro la cadena navarra';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2803'));
                }
                if ((strpos(strtolower($nombre_beca), 'navarra') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena navarra';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2803'));
                }
                
                
                
                
                
                if (strpos(strtolower($nombre_beca), 'valencia') !== false) 
                {
                    //echo '---se encontro la cadena valencia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2817')->orWhere('e.region_id = 2818'));
                }
                if ((strpos(strtolower($nombre_beca), 'valencia') !== false) && (strpos(strtolower($nombre_beca), 'iberoamericanas') !== false))
                {
                    //echo '---se encontro la cadena valencia';
                    $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.pais_id <> 63')->andWhere('e.pais_id <> 158'));
                    $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2817')->orWhere('e.region_id = 2818'));
                }
                
                
            }
        }
        
        if ($tipo_beca == 3)
        {
        /*CLASIFICA LAS BECAS CON BASE AL NOMBRE DE INSTITUCION UBICADA EN ESPAÑA*/
		/*se hace una comprobacion tomando como base los resultados de una consulta donde se obtienen los nombres de todas las instituciones o univesidades y se comparan*/
            echo '--->'.$this->getRequestParameter('id10');
            echo '--->'.$this->getRequestParameter('id11');
            $entidades = Doctrine_Core::getTable('Entidad')->createQuery('a')->addWhere('pais_id = 63')->execute();
            if (strpos(strtolower($nombre_beca), 'universidad') !== false) 
            {
                //$valor = Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.nombre ILIKE ?', '%'.$enti->getNombre().'%');

                foreach ($entidades as $enti):                        
                    if (strpos(strtolower($nombre_beca), strtolower($enti->getNombre())) !== false)
                    {
                        echo '--->se encontro la cadena '. strtolower($enti->getNombre());
                        $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = 2783')->orWhere('e.pais_id <> 63'));                        
                        //echo '--->se encontro la cadena '. strtolower($enti->getNombre());                        
                        $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.region_id = ?', EntidadTable::geteEntidadEncontradaNombre(strtolower($enti->getNombre()))->getRegionId()));
                        
                        
                    }
                 endforeach;
            }
        }
        
        /*tipo de beca de posgrado entidad origen es la misma entidad que la entidad de destino*/
        if ($tipo_beca == 4)
        {
            $this->form['entidad_origen']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.id = ?', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getEntidadQueConvoca()));            
            $this->form['entidad_destino']->getWidget()->setOption('query', Doctrine_Query::create()->select('e.id')->from('Entidad e')->where('e.id = ?', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getEntidadQueConvoca()));            
        }
        $this->getUser()->setAttribute('nom_beca', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getNombre());        
        $this->getUser()->setAttribute('nom_uni', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getEntidad()->getNombre());
  }
   
  public function executePrueba(sfWebRequest $request)
  {
      $id_entidad_origen = $this->getRequestParameter('id0');
      $id_entidad_destino = $this->getRequestParameter('id1');
      $id_pais_entidad_origen = EntidadTable::geteEntidadEncontrada($id_entidad_origen)->getPaisId();
      $id_pais_entidad_destino = EntidadTable::geteEntidadEncontrada($id_entidad_destino)->getPaisId();   
      if ($id_pais_entidad_origen == $id_pais_entidad_destino) 
      {
          echo 'NO PUEDEN SER IGUALES';
      }
      else 
      {
          echo '';
      }      
  }
  
  public function executeCreate(sfWebRequest $request)
  {
      $this->aplicacion_beca = new AplicacionBeca();   
      $this->aplicacion_beca->setBecaId($this->getUser()->getAttribute('id'));
      $this->aplicacion_beca->setBeca(BecaTable::getBecaEncontrada2($this->getUser()->getAttribute('id')));
      $this->aplicacion_beca->setUsuarioId($this->getUser()->getAttribute('email'));
      $this->forward404Unless($this->aplicacion_beca);      
      $this->forward404Unless($request->isMethod(sfRequest::POST));
      $this->form = new AplicacionBecaForm($this->aplicacion_beca);
    //$this->form = new AplicacionBecaForm();
    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($aplicacion_beca = Doctrine_Core::getTable('AplicacionBeca')->find(array($request->getParameter('beca_id'),
              $request->getParameter('usuario_id'))), sprintf('Object aplicacion_beca does not exist (%s).', $request->getParameter('beca_id'),
              $request->getParameter('usuario_id')));
    $this->form = new AplicacionBecaForm($aplicacion_beca);
    $this->getUser()->setAttribute('id', $request->getParameter('beca_id'));
    $this->getUser()->setAttribute('nom_beca', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getNombre());        
    $this->getUser()->setAttribute('nom_uni', BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'))->getEntidad()->getNombre());
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($aplicacion_beca = Doctrine_Core::getTable('AplicacionBeca')->find(array($request->getParameter('beca_id'),
              $request->getParameter('usuario_id'))), sprintf('Object aplicacion_beca does not exist (%s).', $request->getParameter('beca_id'),
              $request->getParameter('usuario_id')));
    $this->form = new AplicacionBecaForm($aplicacion_beca);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $this->forward404Unless($aplicacion_beca = Doctrine_Core::getTable('AplicacionBeca')->find(array($request->getParameter('beca_id'),
              $request->getParameter('usuario_id'))), sprintf('Object aplicacion_beca does not exist (%s).', $request->getParameter('beca_id'),
              $request->getParameter('usuario_id')));
    $aplicacion_beca->delete();

    $this->redirect('aplicaciones/index');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));    
    if ($form->isValid())
    {
      
      //$this->aplicacion_beca = $form->save();      
      $aplicacion_beca = $form->save();      
      //$this->redirect('aplicaciones/edit?beca_id='.$aplicacion_beca->getBecaId().'&usuario_id='.$aplicacion_beca->getUsuarioId());
      //$this->redirect('documentos/new');    
      $this->getUser()->setAttribute('beca_id', $aplicacion_beca->getBecaId());
      $this->getUser()->setAttribute('usuario_id', $aplicacion_beca->getUsuarioId());
      //$this->redirect($this->generateUrl('default', array('module' => 'documentos','action' => 'new', 'id'=>$this->getUser()->getAttribute('id'))));                                           
	$this->redirect('documentos/new');
    }
  }
}
